package student;


import java.sql.*;
import java.util.ArrayList;
/*创建连接 localhost:1433;DatabaseName=数据库名
sql中的？代表占位符，  预处理执行器特有
填充数据库
创建新的列
执行查询数据库
向列表中加入对象
返回
* */
public class LoginDao {
    public ArrayList<UserPojo> findByUname(String p_username) throws SQLException, SQLException {


        //2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        //sql中的？代表占位符，  预处理执行器特有
        String sql = "select id,username,password from user_mst where username=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        //填充第几个？
        ps.setString(1,p_username);
        // 填充(1,p_username)
        ArrayList<UserPojo> ulist = new ArrayList<>();
        //创建新的列
        ResultSet rs = ps.executeQuery();
        //执行查询数据库
        while (rs.next()) {
            //while函数
            UserPojo pojo = new UserPojo();
            ulist.add(pojo);
            //向列表中加入对象
            pojo.setId(rs.getInt(1));
            //将1添加到Id
            pojo.setUsername(rs.getString(2));
            //将2添加到name
            pojo.setPassword(rs.getString(3));
            //将3添加到Password

         //   pojo.setSex(rs.getString(4));
         //   pojo.setDate(rs.getString(5));

        }
        conn.close();
        //关闭
        return ulist;
        //返回列
    }
    /*创建连接 localhost:1433;DatabaseName=数据库名
    * sql中的？代表占位符，  预处理执行器特有
    * 添加表中数据
    * exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
    * */
    public int addUserInfo(String v1, String v2,String v3,String v4,int v5,String v6,int v7) throws SQLException {

        // 2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        // sql中的？代表占位符，  预处理执行器特有
   String sql = "insert into Student(sno,sname,sdate,sex,sgrade,career,cid) values(?, ?, ?, ?, ?, ?, ?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        // 填充第几个？
        ps.setString(1, v1);
        //添加(1, v1)
        ps.setString(2, v2);
        //添加(2, v2)
        ps.setString(3, v3);
        //添加(3, v3)
        ps.setString(4, v4);
        //添加(4, v4)
        ps.setInt(5, v5);
        //添加(5, v5)
        ps.setString(6, v6);
        //添加(6, v6)
        ps.setInt(7, v7);
        //添加(7, v7)

        // 3
        // exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
        int rs = ps.executeUpdate();

        conn.close();
        //关闭

        return rs;
        //返回rs
    }

    /*public List<StudentPojo> selectBySname(String sname) throws SQLException {
        //2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        //sql中的？代表占位符，  预处理执行器特有
        String sql = "select sno,sname,sdate,sex,sgrade,career,cid\n" +
                "from Student\n" +
                "where sname='?'";
        PreparedStatement ps = conn.prepareStatement(sql);
        //填充第几个？
        ps.setString(1,sname);
        // 3
        ArrayList<StudentPojo> ulist = new ArrayList<>();
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            StudentPojo pojo = new StudentPojo();
            ulist.add(pojo);
            pojo.setSno(rs.getString(1));
            pojo.setSname(rs.getString(2));
            pojo.setSdate(rs.getString(3));
            pojo.setSex(rs.getString(4));
            pojo.setSgrade(rs.getInt(5));
            pojo.setCareer(rs.getString(6));
            pojo.setCid(rs.getInt(7));
            System.out.println("学号为："+rs.getString(1)+"姓名为："+rs.getString(2)+"生日为："+rs.getString(3)+
                    "性别为："+rs.getString(4)+"成绩为："+rs.getString(5)+"专业为："+rs.getString(6)+"班号为："+rs.getString(7));
        }
        conn.close();
        return ulist;

    }*/
    /*创建连接 localhost:1433;DatabaseName=数据库名
    * sql中的？代表占位符，  预处理执行器特有
    * 数据库中学号、姓名、出生日期、性别、成绩
    * 填充数据
    * 创建新的列
    * 执行查询数据库
    * 向列中加入对象
    * 返回
    * */
    public ArrayList<StudentPojo> selectBySname(String sname) throws SQLException, SQLException {


        //2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        //sql中的？代表占位符，  预处理执行器特有
        String sql = "select sno,sname,sdate,sex,sgrade,career,cid\n" +
                "from Student\n" +
                "where sname=?";
        //数据库中学号、姓名、出生日期、性别、成绩
        PreparedStatement ps = conn.prepareStatement(sql);
        //填充第几个？
        ps.setString(1,sname);
        // 填充(1,sname)
        ArrayList<StudentPojo> slist = new ArrayList<>();
        //创建新的列
        ResultSet rs = ps.executeQuery();
        //执行查询数据库
        while (rs.next()) {
            //while函数
            StudentPojo pojo = new StudentPojo();
            slist.add(pojo);
            //向列中加入对象
            pojo.setSno(rs.getString(1));
            //将1添加到Sno
            pojo.setSname(rs.getString(2));
            //将2添加到Sname
            pojo.setSdate(rs.getString(3));
            //将3添加到Sdate
            pojo.setSex(rs.getString(4));
            //将4添加到Sex
            pojo.setSgrade(rs.getInt(5));
            //将5添加到Sgrade
            pojo.setCareer(rs.getString(6));
            //将6添加到Career
            pojo.setCid(rs.getInt(7));
            //将7添加到Cid
            System.out.println("学号为："+rs.getString(1)+"  "
                    +"姓名为："+rs.getString(2)+"  "
                    +"生日为："+rs.getString(3)+"  "
                    +"性别为："+rs.getString(4)+"  "
                    +"成绩为："+rs.getString(5)+"  "
                    +"专业为："+rs.getString(6)+"  "
                    +"班号为："+rs.getString(7));
            /*添加学号
            *添加姓名
            * 添加生日
            * 添加性别
            * 添加成绩
            *添加专业
            *添加班号
            * */
        }
        conn.close();
        //结束
        return slist;
        //返回
    }

}
